Electronic drawing viewer

ABSTRACT

Provided herein is a computer-based system for viewing a two-dimensional electronic draining, including processes for pointing to similar components in different views, animation of views, hyperlinking components between views and virtual folding of an electronic drawing.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] This application relates to the field of computer aided designand more particularly to the field of computer modeling.

[0003] 2. Description of Related Art

[0004] Computer-aided design software can be used to construct andmanipulate computer drawings of objects referred to as “models”. Theuser is presented with a display of the model on the computer screen andmanipulates the model using keyboard commands, a mouse/cursorcombination, and other various input means. Changes to the model arereflected in the screen display of the model as the user makes thechanges or, alternatively, in response to the user issuing a specificcommand to update the screen display of the model. In either case, thescreen display of the model serves as the main source of modelinformation to the user and as the user's reference for inputting andchanging features of the model.

[0005] Although computer-aided design based on three-dimensional modelshas become increasingly prevalent, engineers and other designerscontinue to use conventional two-dimensional design drawings in manycases. Two-dimensional design drawings present a number of difficulties,one of which is that they are very difficult to read, even to experts.As two-dimensional renderings of different views of three-dimensionalobjects, the drawings necessarily separate relevant information about aunified object into a plurality of different views. This separationrequires the user to understand the multiple views, rather than lookingat the object as a whole. In addition, some views, such as section cuts,may not match any view that would actually be seen by a viewer of a realobject, so that they require substantial imagination on the part of theuser. As the complexity of a modeled object increases and as the numberof views increases, it can be very difficult to keep track of therelationship of different views and of the relationship of differentcomponents within different views.

[0006] Despite these problems, two-dimensional drawings remain astandard modeling technique for a wide range of objects in many fields.Accordingly, a need exists for simplifying computer modeling oftwo-dimensional drawings.

SUMMARY OF THE INVENTION

[0007] According to the present invention, correlating at least twoviews of an object, includes providing a data structure that links firstgeometry of a first one of the view with a second one of the view and,in response to a user selecting the first geometry, indicating acorrelation between the first geometry and the second one of the views.Indicating may include highlighting the second one of the views. Inresponse to the second one of the views not being visible on a userscreen, the second one of the views may be displayed on the user screen.The first geometry may include a section line and/or a detail circle.The data structure that links the first geometry to the second one ofthe views may be derived from underlying three dimensional model datafrom which the at least two views are generated. Selecting the firstgeometry may include locating a cursor arrow on the first and clicking amouse button.

[0008] According further to the present invention, displaying two viewsof an object, includes selecting a first one of the views, selecting asecond one of the views, and moving at least one of the views so thatthe first view is in proximity to the second view. If the first view isa projection of the second view, moving at least one of the views mayinclude snapping the views into alignment. Aligning the first and secondviews may include using transform matrices associated with each of theviews. The transform matrices may correlate relative coordinates of eachof the views with an absolute coordinate system. Selecting the firstview and selecting the second view may include locating a cursor arrowthe views and clicking a mouse button. Selecting the first view andselecting the second view may include dragging and dropping at least oneof the views into closer proximity with the other one of the views.

[0009] According further to the present invention, correlating at leasttwo views of an object includes providing a pointer having an absolutelocation, displaying the pointer in a first one of the views at arelative location in the first view corresponding to the absolutelocation of the pointer, and displaying the pointer in a second one ofthe views at a relative location in the second view corresponding to theabsolute location of the pointer. The relative locations may bedetermined by applying a transform matrix for each of the views to theabsolute location of the pointer. In response to the user moving thepointer in the first one of the views, the pointer may be moved acorresponding amount in the second one of the view. The user moving thepointer may include dragging and dropping the pointer in one of theviews. A new absolute location of the pointer may be determined byapplying an inverse of a transform matrix for the first one of the viewsto determine a new absolute location of the pointer based on movement ofthe pointer by the user in the first one of the views. A new relativelocation for the pointer in the second view may be determined byapplying the transform matrix for the second one of the views to the newabsolute location of the pointer.

[0010] According further to the present invention, displaying a modelhaving a plurality of two dimensional views associated therewithincludes rotating the model to present a first one of the views, pausingto show the first one of the views, and continuously rotating andpausing the model to present other ones of the views. In response to auser indicating that rotation should stop, rotation may be suspendeduntil the user indicates otherwise. After the user has indicated thatrotation should stop at a first particular one of the views, acorrelation between a first geometry of the first particular one of theviews and a second particular one of the views may be indicated.Indicating may include highlighting the second particular one of theviews. In response to the second particular one of the views not beingvisible on a user screen, the second particular one of the views may bedisplayed on the user screen. The first geometry may includes a sectionline and/or a detail circle. After indicating a correlation between afirst geometry of the first particular one of the views and a secondparticular one of the views, the model may be rotated to present thesecond particular one of the views. In response to a presented viewbeing a section view, a portion of the model may be removed to show theview.

[0011] According further to the present invention a computer-basedsystem for providing interpretation of a two-dimensional electronicdrawing having a plurality of views, includes a virtual folding processfor permitting a viewer to view selected views in proximity to eachother from a plurality of the possible views, a hyperlink process forsimultaneously highlighting the coordinates of a viewed object as thecoordinates appear in more than one view, a pointer for simultaneouslypointing to the same point of a viewed object as the point appears inmore than one view, and a drawing animator for rotating thethree-dimensional depiction about an axis of rotation and highlighting atwo-dimensional view when the view is coincident with the plane of thedrawing. Data for the two dimensional drawing and a program fordisplaying the drawing may be stored in a single file.

BRIEF DESCRIPTION OF DRAWINGS

[0012]FIG. 1 depicts the system components of a computer modelingsystem.

[0013]FIG. 2 depicts a computer screen with a modeling window fordisplaying an object to be viewed.

[0014]FIGS. 3 and 4 depict a plurality of views of an example of adesign drawing in a modeling window of a computer system such as that ofFIG. 1.

[0015]FIG. 5 depicts a simplified schematic of a design drawing in themodeling window of a computer screen.

[0016]FIG. 6 depicts the front view of FIG. 3 and a section view of FIG.4 after completion of a virtual folding process of the present systemsand methods.

[0017]FIG. 7 depicts views of an object in a modeling window of acomputer screen for illustrating a hyperlink process of the presentsystems and methods.

[0018]FIG. 8 depicts an object in a modeling window of a computer screenfor illustrating a pointer process of the presents systems and methods.

[0019]FIG. 9 depicts a simplified solid object in a modeling window of acomputer screen.

[0020]FIG. 10 depicts a schematic diagrams with three two-dimensionalviews of the object of FIG. 9.

[0021]FIG. 11 depicts a single highlighted view after rotation of theobject of FIG. 9.

[0022]FIGS. 12 and 13 present, respectively, a three dimensional view ofa pump housing during rotation and a two-dimensional view highlightedaccording to the process of the present invention.

[0023]FIG. 14 depicts a system for providing the functionality of thesystems and methods disclosed herein, including an electronic drawingfile and a display program.

[0024]FIG. 15 depicts an electronic drawing file according to thepresent invention.

[0025]FIG. 16 is a flow chart illustrating steps used in connection withimplementing the pointer process disclosed in connection with FIG. 10.

[0026]FIG. 17 is flow chart indicates the steps for implementing thevirtual folding feature described in connection with FIGS. 6, 7 and 8.

[0027]FIG. 18 is a flow chart that illustrates steps for hyperlinking asection line or detail circle of one view to another view correspondingto the section line or detail circle.

[0028]FIG. 19 is a flow chart that illustrates steps performed inconnection with the animation feature discussed above.

[0029]FIG. 20 is a schematic diagram illustrating a process in which atransform program creates the electronic drawing file using atwo-dimensional file and, optionally, a three-dimensional file.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

[0030] Referring to FIG. 1, a computerized modeling system 30 includes aCPU 31, a Computer screen 32, a keyboard input device 33, a mouse inputdevice 34, and a storage device 35. The CPU 31, Computer screen 32,keyboard 33, mouse 34, and storage device 35 are conventional, commonlyavailable, computer hardware devices such as workstation or personalcomputer employing a microprocessor, such as a Pentium- or Pentium-IIbased processor or other conventional processor. The mouse 34 hasconventional, user-actuatable, left and right buttons. Other appropriatecomputer hardware platforms are suitable as will become apparent fromthe discussion which follows, such computer hardware platforms arepreferably capable of operating a software operating system capable of agraphical user interface, such as the Microsoft Windows NT, Windows 95,or Windows 98 operating systems, or a MacIntosh operating system fromApple Computer.

[0031] Computer-aided design software is stored on the storage device 35and is loaded into and executed by the CPU 31. The software allows theuser to create and modify a model of an object.

[0032] Referring to FIG. 2, the CPU 31 uses the computer screen 32 todisplay a three-dimensional model in a modeling window 40. The objectdepicted in FIG. 2 is a three-dimensional rendering of a commonmechanical object, the housing 37 for a pump. Other aspects thereof aredescribed in more detail below.

[0033] Referring again to FIG. 1, a user actuates the keyboard 33 andthe mouse 34 to enter and modify data for the model. The CPU 31 acceptsand processes input from the keyboard 33 and the mouse 34. Using themodeling software, the CPU 31 processes the input along with the dataassociated with the model and makes corresponding and appropriatechanges to the display on the computer screen 32. In addition, datacorresponding to the model created by the user can be written from theCPU 31 to the storage device 35. It will be appreciated by those ofordinary skill in the art that the invention could be used inconjunction with any computer-aided design software, including softwareused to generate three-dimensional or two-dimensional models, such asmodeling software provided by SolidWorks Corporation of Concord, Mass.

[0034] Referring to FIGS. 3 and 4, a two-dimensional design drawing isdepicted, showing a number of two-dimensional views of, in this example,the pump housing 37 of FIG. 2. The computer screen 32 includes themodeling window 40 that contains a number of views of the pump housing37. Different views include a front view 44, a top view 48, a number ofsection views, and a detail view. As can be observed from the drawing ofFIGS. 3 and 4, a drawing even for a simple mechanical device such as apump housing is very complex, making it quite difficult to read. Forexample, the level of detail requires that the model be sufficientlylarge to read the dimensional data, but the number of views makes itdifficult to fit all views of a sufficiently large size on a singlescreen. As a result, the computer screen 32 typically only shows part ofthe modeling window 40 at any given time, requiring the user to use aprocess, such as an arrow bar or other conventional device (not shown)to move about the modeling window 40 among the different views.

[0035] A simplified schematic of typical design drawings, such as thoseof FIGS. 3 and 4, is depicted in FIG. 5, containing a reduced level ofdesign detail as needed to illustrate the methods and systems disclosedherein. In FIG. 5 certain shading and background elements have beenincluded that would not necessarily appear on the computer screen 32,but that enhance the ability to view elements discussed below.

[0036] Referring to FIG. 5, in one embodiment, a model 42 consists of aplurality of two-dimensional views of a pump housing object, such as thefront view 44, the top view 48, a section view 50, a first detail view52 and a second detail view 54. Section view 50 is a two-dimensionalview of a cross section that one would obtain by cutting the objectdepicted in front view 44 along the line A-A that is depicted in thefront view 44. It should be noted that a side view can be obtained bytaking a section view while placing the section line adjacent to, ratherthan through, an object to be viewed. Top view 48 depicts the view thatone would obtain by looking at the top of the object depicted in thefront view 44, with the top of the object being positioned at the top ofthe computer screen 32. Detail view 52 is a depiction of a more detailedelement B as indicated in the section view 50. Detail view 54 is a moredetailed view of the circled item C of the front view 44.

[0037] Provided herein is a computer-based system for providing improvedviewing of a two-dimensional electronic drawing having a plurality ofviews. Referring to FIGS. 3, 4 and 6, the computer-based system includesa virtual folding process for permitting a viewer to place selectedviews from a plurality of possible views in proximity to each other onthe computer screen. FIG. 3 depicts a schematic of a model 42 with thefront view 44 in the computer screen 32. FIG. 4 depicts section viewD-D, which is a section that would result upon cutting the pump housing37 along axis D-D. Thus, while the front view 44 and the section view 49are in the same computer screen 32, they are sufficiently distant fromeach other that it is difficult to view both of them on the computerscreen 32 at the same time while maintaining a sufficiently close viewto see important details, such as dimensional data.

[0038] The situation depicted in FIGS. 3 and 4 is analogous to asituation that arises with two-dimensional drawings in paper form, suchas those used by architects or mechanical engineers. Different views areoften located far apart on the paper, so that it is difficult to examinetwo related views at the same time. The conventional method for handlinga large paper drawing is to fold the drawing so that items of interestare in close proximity to each other, with other items hidden by thefold in the drawing.

[0039] The methods and systems disclosed herein provide a virtualfolding process that permits the user to place selected views near eachother on the screen, while hiding views that are not selected. Thus, thevirtual folding process permits the user to select the front view 44 andthe section view 49, and to move the two views into proximity to eachother, as depicted in FIG. 6. Execution of a virtual folding process maybe executed by any conventional mechanism, such as a pull down menu, anicon, a mouse operation, or the like. For example, a user might select avirtual folding process from a library of tools by clicking on a toolsmenu bar at the top of the computer screen 32. The user could thenselect views among those on the computer screen 32 by locating thecursor arrow on a particular view and clicking one of the buttons of themouse. Alternatively, the virtual folding process could involve draggingand dropping a selected view into closer proximity with another view.Further details as to the virtual folding process are provided below.

[0040] Also provided herein as a part of the computer-based system is ahyperlink process for simultaneously highlighting the coordinates of aviewed object and a corresponding other view on a computer screen.Referring to FIG. 7, the front view 44 and the section view 50 includethe coordinates A-A, representing the location of a cut through theobject modeled in the model window 40 of the computer screen 32. Thehyperlink process identifies coordinates and the respective views thatappear in the computer screen 32 and, when the arrow is positioned overa particular coordinate, the corresponding view is highlighted. Forexample, if the mouse is positioned over the coordinates A-A in thefront view 44 at the location 52, then the section view 50 is alsohighlighted. Highlighting may be accomplished by changing the color, byusing shading, or other conventional methods for highlighting an item ofinterest on a computer screen 32.

[0041] Also provided as a part of the computer-based system is a pointerfor simultaneously pointing to the same point of a viewed object as thepoint appears in more than one view on a computer screen. Referring toFIG. 8, a pointer 56 may appear in one or more views of an objectmodeled in the modeling window 40 of the computer screen 32. Forexample, the pointer 56 may be located at the location 55 in the frontview 44, which corresponds to the location 58 in the top view 48 and thelocation 60 in the detail view 54. When the pointer 56 is moved, such asby clicking and holding the mouse on the pointer 56, the pointer 56moves in each of the views to a location that corresponds in each of theviews. For example, if the pointer 56 is moved along a horizontal linein the view 44 to a location 61, then the pointer 56 in the top view 48would move to a new location 62 in the section view 54. Similarly, thepointer 56 could move to a new location in the section view 54, but inthis case, because the movement is along the axis of sight of theviewer, no movement would be apparent. Depending on the relationship ofthe views, the pointer 56 might move quite differently in differentview. For example, if views are skew to each other, then horizontalmovement in one view might not result in any movement of the pointer inanother view, because the horizontal movement might be along an axis ofviewing in one of the views. The pointer process permits quickrecognition of similar components in different views. A pointer mayhighlight a spot through color, shading, or other conventional means.Cross-hairs are depicted in FIG. 8 as an example of a pointer.

[0042] Also provided herein as part of the computer-based system is adrawing animator for rotating a three-dimensional depiction of a modelabout an axis of rotation and highlighting a two-dimensional view whenthe view is coincident with the plane of the drawing. Referring to FIG.9, a simplified solid object is depicted in the modeling window 40 ofthe computer screen 32. Methods and systems for rotating such an objectabout one or more axes of rotation are well known in the area ofcomputer aided design, such as those provided in the SolidWorks 99product available from SolidWorks Corporation of Concord, Mass. In ananimator process that is associated with a two-dimensional drawinghaving a plurality of views, the process may highlight a view when it ispresented to the user. For example, referring to FIG. 9, a simple step74 is depicted having a front side 68, and top side 70 and a right side72. The step 74 is presented in FIG. 9 as partially rotated to shortthese three sides, with shading representing the different sides.

[0043]FIG. 10 depicts a two-dimensional drawing showing a front sideview 78, and top side view 80 and a right side view 82, corresponding toa two-dimensional view of each of the sides of the step 74.

[0044] Referring to FIG. 11, when the step 74 is rotated by the modelingprogram, a particular view is highlighted when it is presented directlyto the user; i.e., when the side is co-planar with the computer screenand perpendicular to the line of sight of the viewer of the computerscreen 32. Thus, the front side view 78, the top side view 80 and theright side view 82 are highlighted when the rotation presents them tothe user. FIG. 11 depicts the right side view 72 after rotation of thestep to the right from the position of FIG. 9. The animation featureenables the user to recognize the location of various views when theyappear in the object. When an object has complicated cross sections, theanimation permits the user to determine the orientation of varioustwo-dimensional views relative to each other.

[0045]FIGS. 12 and 13 present, respectively, a three dimensional view ofa pump housing 37 during rotation and a two-dimensional view highlightedaccording to the process of the present invention. Specifically, FIG. 13represents a top view 48 that would be highlighted when the pump housing37 is rotated so that the top side faces the viewer of the computerscreen 32.

[0046] Referring to FIG. 14, a system 100 for providing thefunctionality discussed above and shown in FIGS. 1-13 includes anelectronic drawing file 122 and a display program 124. The displayprogram uses the electronic drawing file 22 and user commands to providedisplay data that may be shown on the computer screen 32 or printed outin a conventional manner. The electronic drawing file 122 and thedisplay program 124 are discussed in more detail hereinafter.

[0047] In one embodiment, the electronic drawing file 122 and thedisplay program 124 are stored together in a compressed metafile 126.The single compressed metafile 126 may then be provided to a user as asingle file that, when uncompressed, includes both the display program124 and the electronic drawing file 122. If the display program 124 isnot too large, then it may be possible to sent a substantial number ofelectronic drawings this way so that the recipient(s) always have thedisplay program 124 for displaying the electronic drawing file 122.Compressing the electronic drawing file 122 and the display program 124into a single compressed file 126 may be performed in any one of anumber of conventional fashions using conventional software availablefor such purposes. In some instances, execution of the single file willcause automatic decompression and execution of the display program 124.

[0048] Referring to FIG. 15, the electronic drawing file 122 is shown asincluding a plurality of view data records 134-136 and a tessellatedmodel data record 138. The view data record 134, which is shown indetail, includes two dimensional drawing data 142, a transform matrix144 and hyperlinks 146. Other view records 135, 136 contain dataanalogous to that shown in detail for the view record 134. Thetessellated model data record 138 includes data corresponding to athree-dimensional tessellated view that is generated in a conventionalmanner from the three-dimensional model in a manner described in moredetail hereinafter in connection with the discussion regardinggeneration of the electronic drawing file 122.

[0049] Each of the view records 134-136 corresponds to one of thetwo-dimensional views, including views corresponding to section cuts anddetail circles. The two-dimensional data 142 includes conventionaltwo-dimensional drawing objects used to display the view correspondingto the record 134. These objects include commands to draw lines,circles, arcs, etc. Each of the view records 134-136 includescorresponding two-dimensional data for the corresponding view.

[0050] Associated with the model represented by the various view records134-136 is an absolute base coordinate system that includes theorientation, translation, and scaling factor for the model as depictedby the various view records 134-136. Accordingly, the transform matrix144 includes information indicating the translation, scale, and rotationof the view record 134 with respect to the absolute base for the modelrepresented by the view records 134-136. As is known in the art, thetransform matrix is a four-by-four array that contains specific numbersindicating the translation, scale, and rotation. A discussion of suchtransformation matrices may be found in Computer Graphics Principles andPractice, by Foley, VanDam, Feiner, and Hughes, published byAddison-Wesley, of New York, N.Y.

[0051] The hyperlink data 146 contains data that links portions of thetwo-dimensional data 142 of some of the records 134-136 with other onesof the records. In the case of a section view, the hyperlink data 146would contain an identification of the particular section line stored inthe two dimensional data 142 and associate that information with anotherone of the views 135, 136 that corresponds to the particular sectionline in the two dimensional data 142. Similarly, for detail circles, thehyperlink data 146 would identify particular item or items of the twodimensional data 142 that shows the circle in the view corresponding tothe record 134 and links that information with another one of the views135, 136 that corresponds to the detail circle. Generation of thehyperlink data 146 is discussed in more detail hereinafter in connectionwith the discussion regarding generation of the electronic drawing file122.

[0052] Referring to FIG. 16, a flow chart 150 illustrates steps used inconnection with implementing the pointer 56. At a first step 152, astart point for the pointer 56 is selected. The start point for thepointer could be any point in three-dimensional space, such as theorigin of the absolute coordinate system. However, in one embodiment,the start point may be chosen by selecting a visible point on adisplayed view for two of the three coordinates and then using thatpoint to calculate the third coordinate corresponding to a visible pointon a second, orthogonal view to the first selected view.

[0053] Following the step 152 is a step 154 here the location of thepointer 56 is calculated for all of the views. The location of thepointer 56 is stored as three values corresponding to the X, Y, and Zcoordinates, in the absolute coordinate system. Accordingly, at the step154, the relative location of the pointer 56 for each of the views isdetermined by using the transform matrix associated with each view andapplying the transform matrix to the absolute coordinates of the pointer56. Thus, at the step 154, application of the transform matrix to theabsolute coordinates of the pointer 56 provides a relative position ofthe pointer 56 for each of the views. Following the step 154 is a step156 where the pointer 56 is displayed in all of the views of a modelingwindow 40 of the computer screen 32. Displaying the pointer 56 at thestep 156 is provided in the conventional manner, by using the relativelocation information determined at the step 154 and providing anappropriate symbol, such as a dot or a cross-hair, on each of the viewsto indicate the location of the pointer 56 in each of the views. In someembodiments, the pointer 56 may be provided in a different color thanthe drawing portion of the views.

[0054] Following the step 156 is a test of 158 where it is determinedwhether the pointer 56 is moved by the user. Note that the user may movethe pointer 56 in any one of the views where the pointer 56 is visible.Movement is accomplished in a conventional manner, such as by using themouse to drag and click the pointer 56 in one of the views. If it isdetermined at the step 158 that the user has moved the pointer 56, thencontrol transfers back to the step 154 where the location of the pointer56 is recalculated in each view, using the transform matrices and othersteps indicated in connection with the discussion of the step 154 above.Thus, if the user chooses to move the pointer 56 in a particular view,then the absolute location of the pointer 56 may be calculated by firstapplying the inverse transform matrix for that view to the relativeposition of the pointer 56 in the view to provide an absolute locationof the pointer 56. Once the absolute location of the pointer 56 isknown, then it is possible to apply the transform matrix for each viewto determine the relative position of the pointer 56 in each view asdiscussed above.

[0055] Referring to FIG. 17, a flow chart 160 indicates the steps forimplementing the virtual folding feature described in connection withFIGS. 6, 7 and 8 above. At a first step 162, a first view is selected.Selection of a view can include having a user specifically click on aview after actuating the virtual folding feature. Following the step 162is a step 164 where a second view is selected. Just as with the firstview, selected in the step 162, selecting the second view can includehaving a user click the mouse to highlight the second view afteractivating the virtual folding feature. Following step 164 is a step 166where the system displays the views together. The step 166 may beimplemented in a conventional fashion by using the two dimensionaldrawing data for each of the views and by applying a transformationmatrix to at least one of the views so that both views appear inproximity to each other on the computer screen. Note also that, if thetwo views are projections of one another, the views may be snapped tohorizontal or vertical alignment in accordance with conventionaldrafting standards, such as ANSI or ISO.

[0056] Referring to FIG. 18, a flow chart 170 illustrates steps forhyperlinking a section line or detail circle of one view to another viewcorresponding to the section line or detail circle. Processing begins ata first step 172 where an item in the current view is selected.Selecting the item at the step 172 may involve having the user point themouse to the item and click on it in a conventional manner. Followingstep 172 is a test step 174 where it is determined if the objectselected at the step 172 is a hyperlink object. Note that a hyperlinkobject includes objects that cause a hyper link between two views, suchas a section line or detail circle. As discussed above, the hyperlinkinformation is stored with each of the views, so that determining if theselected object is a hyperlink object at the step 174 involves reviewingthe hyperlink data for view to determine if the selected objectcorresponds to a hyperlink object. If it is determined at the step 174that the selected object is not a hyperlink object, then control passesback to the step 172 to wait for selection of another object. Otherwise,if it is determined at the step 174 that the selected object is ahyperlink object, then control passes from the step 174 to a test step176 where it is determined whether the view corresponding to theselected object is currently visible. If so, then control passes fromthe test step 176 to a step 178 where the view is highlighted in aconventional manner. Alternatively, if it is determined at the test step176 that the view corresponding to the hyperlink is not currentlyvisible, then control passes from the step 176 to a step 179 where thecurrent view and the view corresponding to the hyperlink object arevirtually folded so that the views appear together. Virtual folding isdiscussed above in connection with FIG. 17.

[0057] Referring to FIG. 19, a flow chart 180 illustrates stepsperformed in connection with the animation feature discussed above. At afirst step 182, a first view is selected, as discussed above. Theanimation iterates through each of the views by rotating a threedimensional tessellated depiction of the model in the modeling window40. There is no particular order required as to the selection of a view,except when hyperlinking is invoked, as discussed below.

[0058] Following step 182 is a step 184 where the three dimensionalmodel is rotated to present the selected view. In the case of sectioncut, the portion of the model that is in front of the section cut isremoved so that the inside portion, where the section cut is taken, isshown. Following the step 184 is a step 186 where the animated model ispaused to show the user the model with the selected view facing forward.Following the step 186 is a test step 188 where it is determined whetherthe user has input a stop command. The user may input a stop command atany time during the animation to stop the animation process and see aparticular view. If it is determined at the test step 188 that a stopcommand has not been entered, then control passes from the step 188 to astep 190, where a new view is selected. Following the step 190, controlpasses back to the step 184 where the tessellated model is rotated tothe newly selected view.

[0059] Note that rotation of a three dimensional model, in a particularrotation of a tessellated version of a three dimensional model, it isknown in the art. Note also that it is possible to correlate the varioustwo dimensional views with particular orientation of the model using thetransformation matrix associated with each view.

[0060] If it is determined at the test step 188 that a stop command hasbeen entered by the user, the control passes from a step 188 to a step192 where the animation stops Once the animation stops the view remainsstatic and the three dimensional model does not move. Following the step192 is a test step 194, where it is determined if the user has clickedon the “go” button. If so, the control passes from a step 194 back to astep 190, where a new view is selected so that animation may continue.As discussed above, following step 190 is the step 184 where thetessellated model is rotated to the selected view.

[0061] If it is determined at the step 194 that the user has notselected the “go” button, then control passes from a step 194 to a stepof 196, where it is determined whether the user has selected an objectfrom the presented view. If not, the control passes back to the step194, discussed above. Otherwise, if it is determined at the test of 196that an object has been selected (while the animation has been stopped,as in the step 188), then control passes from the step 196 to the step198 where hyperlink processing is performed. As discussed above,hyperlink processing occurs when a selected object corresponds to asection view or a detail circle in one view that correlates to anotherview. If the user has stopped the animation of selected object, then thestep 198 is performed to determine whether a hyperlink and/or virtualfolding view needs to be performed. Accordingly, the process of the step198 corresponds to the process, discussed above, in connection with theprocessing of FIGS. 17 and 18. Following the step 198, control passesback to the step 184 to rotate the tessellated model to present the viewindicated by the hyperlink at the step 198.

[0062] Reffering to FIG. 20, a schematic diagram 210 illustrates aprocess in which a transform program 212 creates the electronic drawingfile 122 using a two-dimensional file 214 and, optionally, athree-dimensional file 216. The two-dimensional file 214 may be aconventional two-dimensional file that is generated in a conventionalmanner using a solid modeling program. Many solid modeling programs,such as the SolidWorks program, which is available from SolidWorksCorporation of Concord, Mass., have a built-in mechanism allowing theuser to automatically generate a two-dimensional drawing file, such as afile 214, that includes a plurality of two-dimensional viewscorresponding to the solid model created by the user. In addition to theconventional two-dimensional drawing commands and plurality of views,the two-dimensional file 214 may also contain the transform matrix foreach of the views that orients each of the views with the solid model.Thus, at least two of the components shown in FIG. 15 and describedabove, the two-dimensional data 142 and the transform matrix 144, arealready provided in the two-dimensional file 214.

[0063] Some of the views in the conventional two-dimensional file 214may be section cuts or detail circles of other views. In that case, thatinformation would also be contained in the two-dimensional file 214,since such information may be generated from a solid model and from theportions of the solid model selected by the user for sectioning and forproviding detail. Thus, the hyperlink information, or information whichcan easily be converted to hyperlink information, is also provided inthe two-dimensional file 214. That is, the hyperlink data 146 shown inFIG. 15 may be provided in the file for a two-dimensional electronicdrawing or, alternatively, information which may be easily converted tohyperlink data 146 in a conventional manner may be found in thetwo-dimensional file 214.

[0064] The tessellated view data 138 shown in FIG. 15 may be provided bythe three-dimensional file 216 in a conventional manner. Note that manythree-dimensional or solid modeling programs include a solid tessellatedview of the model created by the user. Alternatively, when thetwo-dimensional file 214 is created by the modeling program, thetessellated view may be included therewith even though the tessellatedview is not part of the two-dimensional views.

[0065] The transform program 212 takes the information from thetwo-dimensional file 214 and optionally, as discussed above, informationfrom the three-dimensional file 216 and creates the electronic drawingfile 122 having a format analogous to that shown in FIG. 15 anddiscussed above. Since most of the relevant information is alreadycontained in the two-dimensional file 214 and, optionally, thethree-dimensional file 216, the transform program 212 simply convertsthe format of the data in a conventional and straightforward manner toprovide the proper format for the electronic drawing file 122.

[0066] While the invention has been disclosed in connection with thepreferred embodiments shown and described in detail, variousmodifications and improvements thereon will become readily apparent tothose skilled in the art. Accordingly, the spirit and scope of thepresent invention is to be limited only by the following claims.

1. A method of correlating at least two views of an object, comprising:providing a data structure that links first geometry of a first one ofthe view with a second one of the view; and in response to a userselecting the first geometry, indicating a correlation between the firstgeometry and the second one of the views.
 2. A method according to claim1, wherein indicating includes highlighting the second one of the views.3. A method, according to claim 1, wherein, in response to the secondone of the views not being visible on a user screen, displaying thesecond one of the views on the user screen.
 4. A method, according toclaim 1, wherein the first geometry includes at least one of: a sectionline and a detail circle.
 5. A method, according to claim 1, wherein thedata structure that links the first geometry to the second one of theviews is derived from underlying three dimensional model data from whichthe at least two views are generated.
 6. A method according to claim 1,wherein selecting the first geometry includes locating a cursor arrow onthe first geometry and clicking a mouse button.
 7. A method ofdisplaying two views of an object, comprising: selecting a first one ofthe views; selecting a second one of the views; and moving at least oneof the views so that the first view is in proximity to the second view.8. A method, according to claim 7, wherein, if the first view is aprojection of the second view, moving at least one of the views includessnapping the views into alignment.
 9. A method, according to claim 8,wherein aligning the first and second views includes using transformmatrices associated with each of the views.
 10. A method, according toclaim 9, wherein the transform matrices correlate relative coordinatesof each of the views with an absolute coordinate system.
 11. A method,according to claim 7, wherein selecting the first view and selecting thesecond view includes locating a cursor arrow the views and clicking amouse button.
 12. A method, according to claim 7, wherein selecting thefirst view and selecting the second view includes dragging and droppingat least one of the views into closer proximity with the other one ofthe views.
 13. A method of correlating at least two views of an object,comprising: providing a pointer having an absolute location; displayingthe pointer in a first one of the views at a relative location in thefirst view corresponding to the absolute location of the pointer; anddisplaying the pointer in a second one of the views at a relativelocation in the second view corresponding to the absolute location ofthe pointer.
 14. A method, according to claim 13, wherein the relativelocations are determined by applying a transform matrix for each of theviews to the absolute location of the pointer.
 15. A method, accordingto claim 13, further comprising: in response to the user moving thepointer in the first one of the views, moving the pointer acorresponding amount in the second one of the view.
 16. A method,according to claim 15, wherein the user moving the pointer includesdragging and dropping the pointer in one of the views.
 17. A method,according to claim 15, further comprising: determining a new absolutelocation of the pointer by applying an inverse of a transform matrix forthe first one of the views to determine a new absolute location of thepointer based on movement of the pointer by the user in the first one ofthe views.
 18. A method, according to claim 17, wherein a new relativelocation for the pointer in the second view is determined by applyingthe transform matrix for the second one of the views to the new absolutelocation of the pointer.
 19. A method of displaying a model having aplurality of two dimensional views associated therewith, comprising:rotating the model to present a first one of the views; pausing to showthe first one of the views; and continuously rotating and pausing themodel to present other ones of the views.
 20. A method, according toclaim 19, further comprising: in response to a user indicating thatrotation should stop, suspending rotation until the user indicatesotherwise.
 21. A method, according to claim 20, further comprising:after the user has indicated that rotation should stop at a firstparticular one of the views, indicating a correlation between a firstgeometry of the first particular one of the views and a secondparticular one of the views.
 22. A method accordingly to claim 21,wherein indicating includes highlighting the second particular one ofthe views.
 23. A method, according to claim 21, wherein, in response tothe second particular one of the views not being visible on a userscreen, displaying the second particular one of the views on the userscreen.
 24. A method, according to claim 21, wherein the first geometryincludes at least one of: a section line and a detail circle.
 25. Amethod, according to claim 21, further comprising: after indicating acorrelation between a first geometry of the first particular one of theviews and a second particular one of the views, rotating the model topresent the second particular one of the views.
 26. A method, accordingto claim 19, further comprising: in response to a presented view being asection view, removing a portion of the model to show the view.
 27. Acomputer-based system for providing interpretation of a two-dimensionalelectronic drawing having a plurality of views, comprising: a virtualfolding process for permitting a viewer to view selected views inproximity to each other from a plurality of the possible views; ahyperlink process for simultaneously highlighting the coordinates of aviewed object as the coordinates appear in more than one view; a pointerfor simultaneously pointing to the same point of a viewed object as thepoint appears in more than one view; and a drawing animator for rotatingthe three-dimensional depiction about an axis of rotation andhighlighting a two-dimensional view when the view is coincident with theplane of the drawing.
 28. A computer-based system, according to claim27, wherein data for the two dimensional drawing and a program fordisplaying the drawing are stored in a single file.